import java.util.*;
public class Main {
	
	public static void main(String[] args) throws Exception {
		Interprete interprete = new Interprete();
                 
                 String ultimaExpresion = "";               
                boolean haSalido = false;
		
		while (!haSalido){
                 
                    
                    
                Scanner ingreso = new Scanner(System.in);
		
		String nuevaExpresion = "";
		boolean haTerminadoDeLeer = false;                
		int numeroDeParentesisAbiertos = 0;
		int numeroDeParentesisCerrados = 0;
		
		do{
			nuevaExpresion += " "+ingreso.nextLine().replace('\n', ' ');
			
			if (interprete.variablesDelUsuario.containsKey(nuevaExpresion.trim())){
				haTerminadoDeLeer = true;
			}
				
                        for (int i = 0 ; i < nuevaExpresion.length() ; i++){
                            if (nuevaExpresion.charAt(i)=='('){
                                 numeroDeParentesisAbiertos++;
                                }
                         }
		
                        for (int i = 0 ; i < nuevaExpresion.length() ; i++){
                             if (nuevaExpresion.charAt(i)==')'){
                                  numeroDeParentesisCerrados++;
                                }
                        }
			
			if ((numeroDeParentesisAbiertos == numeroDeParentesisCerrados) && (numeroDeParentesisAbiertos !=0))
				haTerminadoDeLeer = true;
			
		} while (!haTerminadoDeLeer);
		
		ultimaExpresion = nuevaExpresion;
                        
                          if (ultimaExpresion.trim().compareTo("(exit)")==0){
				haSalido = true;
				return;
			}
                          if (ultimaExpresion.trim() == null){
				return;
			}
			
			Atomo atomoAEvaluar = interprete.parsearExpresion(ultimaExpresion.trim(), false, false);
			System.out.println(interprete.evaluar(atomoAEvaluar).toString());
				
		}
	}

}
